home *** CD-ROM | disk | FTP | other *** search
- /*----------------------------------------------------------------------------
-
- glob.h
-
- This file contains global constant, type, and variable definitions.
-
- Copyright © 1994-1995, Northwestern University.
-
- ----------------------------------------------------------------------------*/
-
- #include <Aliases.h>
-
- #include "def.h"
- #include "arrowpair.h"
-
-
-
- /* Constants. */
-
- /*#define kDevelopmentVersion 1*/ /* comment out this line for the release version */
-
- #define kLDEFProc 128 /* resource id of our custom LDEF */
-
- #define kTextMargin 4 /* pixel margin for all text windows */
-
- #define kNewsWatcherSignature 'NNTP' /* NewsWatcher's signature */
- #define kSavedUserGroupListFileType 'NEWS' /* user group list file type */
- #define kSavedMessageFileType 'TEXT' /* saved message file type */
- #define kPrefsFileType 'PREF' /* preferences file type */
-
- #define kOpenTypeList "NEWSTEXT" /* list of file types we can open */
- #define kNumOpenTypeList 2 /* number of file types we can open */
-
- #define kuuUndoCreatorType 'uuUN'
- #define kExpanderCreatorType 'SITx'
-
- #define kGetURLEventClass 'GURL'
- #define kGetURLEventID 'GURL'
- #define kGetURLToFileKeyword 'dest'
-
- #define kMaxSchemeNameLen 31 /* max length of scheme name */
-
-
- /* Strings in STR# id=128 resource. */
-
- #define kStringResourceID 128
-
- #define kStrVersion 1
- #define kStrTabStops 2
- #define kStrAboutWindTitle 3
- #define kStrServerInfoWindTitle 4
- #define kStrMemoryLow 5
- #define kStrCancelingNofMStatusMsg 6
- #define kStrSectionMessageFormat 7
- #define kStrNoneOpened 8
- #define kStrSomeNotOpened 9
- #define kStrNoRefs 10
- #define kStrPrefsFileName 11
- #define kStrArticleNotFound 12
- #define kStrFrom 13
- #define kStrOrg 14
- #define kStrDate 15
- #define kStrNewsgroups 16
- #define kStrArticleXofY 17
- #define kStrCancelingStatusMsg 18
- #define kStrNotCanceled 19
- #define kStrNoMsgID 20
- #define kStrDuplicateCopiesOfHelper 21
- #define kStrMustRestartIC 22
- #define kStrCantFindURLHelper 23
- #define kStrOutOfMemory 24
- #define kStrAuthFailed 25
- #define kStrOpeningOTStatusMsg 26
- #define kStrSortingStatusMsg 27
- #define kStrReadingStatusMsg 28
- #define kStrCheckingNewStatusMsg 29
- #define kStrCheckingDelStatusMsg 30
- #define kStrScrapTooBig 31
- #define kStrNoDelGroups 32
- #define kStrGetFullStatusMsg 33
- #define kStrNewGroups 34
- #define kStrFullGroupList 35
- #define kStrSelGroupNoUnread 36
- #define kStrSelGroupNoArt 37
- #define kStrNoneUnread 38
- #define kStrNoArts 39
- #define kStrUntitled 40
- #define kStrOneGroup 41
- #define kStrNGroups 42
- #define kStrShowFullGroupList 43
- #define kStrHideFullGroupList 44
- #define kStrShowHeader 45
- #define kStrHideHeader 46
- #define kStrQuoteStr1 47
- #define kStrQuoteStr2 48
- #define kStrQuoteStr3 49
- #define kStrByWayOfFmt 50
- #define kStrNoSubject 51
- #define kStrOneNotCanceled 52
- #define kStrTo 53
- #define kStrSubject 54
- #define kStrCc 55
- #define kStrBcc 56
- #define kStrReplyto 57
- #define kStrFollowupto 58
- #define kStrKeywords 59
- #define kStrDistribution 60
- #define kStrExtraNewsHeaderLines 61
- #define kStrExtraMailHeaderLines 62
- #define kStrSignature 63
- #define kStrPostOKMailErr 64
- #define kStrTooManyGroups 65
- #define kStrTrunc 66
- #define kStrURLHelperNotFound 67
- #define kStrURLHelperNoMem 68
- #define kStrScrapTooBigMaxIs32767 69
- #define kStrNoMoreChars 70
- #define kStrChecking 71
- #define kStrOpeningConnectionStatusMsg 72
- #define kStrServerInfoFmt 73
- #define kStrURLHelperUnexpectedErr 74
- #define kStrSyntaxErr 75
- #define kStrNotInFullGroupList 76
- #define kStrGroupDeletedOnServer 77
- #define kStrMissingGroupName 78
- #define kStrCheckingForNewArticlesStatusMsg 79
- #define kStrQuoteString 80
- #define kStrDirFull 81
- #define kStrGettingGroupListFromHostStatusMsg 82
- #define kStrGetFromHostWindowTitle 83
- #define kStrNoneCanceled 84
- #define kStrSaveGroupListAs 85
- #define kStrSendingGroupListToHostStatusMsg 86
- #define kStrSizeofTPrefRecBadFmt 87
- #define kStrOpeningMacTCPStatusMsg 88
- #define kStrCouldNotOpenMacTCP 89
- #define kStrStartupError 90
- #define kStrOldPrefsFileName 91
- #define kStrReallyOldPrefsFileName 92
- #define kStrDiskFull 93
- #define kStrPersonalNWFolder 94
- #define kStrCantFindDefaultURLHelper 95
- #define kStrUnexpectedErr 96
- #define kStrDefaultTextFileOwner 97
- #define kStrDefaultNewsrcFileName 98
- #define kStrPrintingSample 99
- #define kStrGroupSubjectSample 100
- #define kStrArtMsgSample 101
- #define kStrMustRestart 102
- #define kStrPrintNoPagesInRange 103
- #define kStrSaveArticlePrompt 104
- #define kStrSaveMessagePrompt 105
- #define kStrDiskIOErr 106
- #define kStrDefaultSearchHdr 107
- #define kStrSearchingStatusMsg 108
- #define kStrNoMatches 109
- #define kStrSearchWindowTitle 110
- #define kStrMustCheckAnIcon 111
- #define kStrMustSupplySubject 112
- #define kStrMustSupplyNewsgroup 113
- #define kStrMustSupplyRecipient 114
- #define kStrPostingMessageStatusMsg 115
- #define kStrMailingMessageStatusMsg 116
- #define kStrFolderSelectNothing 117
- #define kStrFolderSelectFmt 118
- #define kStrStatusWindowTitle 119
- #define kStrHelperTooOld 120
- #define kStrStatusCancelButtonName 121
- #define kStrLogFileName 122
- #define kStrGettingSubjectsAndAuthorsStatusMsg 123
- #define kStrGetSubjectsStatusMsg 124
- #define kStrSelArticleDoesntExist 125
- #define kStrNoneExist 126
- #define kStrSomeDontExist 127
- #define kStrOneArt 128
- #define kStrNArts 129
- #define kStrSomeGroupsNotInFullGroupList 130
- #define kStrDragTextTooBig 131
- #define kStrDragTextBadChar 132
- #define kStrDamagedCache 133
- #define kStrFileLockedOrBusy 134
- #define kStrLogOpenMsg 135
- #define kStrNewsWatcherVersion 136
- #define kStrLogLegend 137
- #define kStrLogCantOpen 138
- #define kStrLogClosed 139
- #define kStrScrapBadChar 140
- #define kStrNoMoreTyping 141
- #define kStrDelGroupsWindTitle 142
- #define kStrNews 143
- #define kStrMail 144
- #define kStrFTP 145
- #define kStrVolLocked 146
- #define kStrNNotCanceled 147
- #define kStrNewsWatcher 148
- #define kStrGettingAndSavingArticle 149
- #define kStrGettingAndSavingArticleNofM 150
- #define kStrDefaultArtFoldNotFound 151
- #define kStrDefaultMsgFoldNotFound 152
- #define kStrMessageBodyTruncated 153
- #define kStrMessageFieldTruncated 154
- #define kStrHqxDecodeHelperName 155
- #define kStrDownloadFoldNotFound 156
- #define kStrDownloadTempFilePrefix 157
- #define kStrDownloadTempFilePrompt 158
- #define kStrGettingAndSavingFile 159
- #define kStrGettingAndSavingPartNofM 160
- #define kStrCantFindDecodeHelper 161
- #define kStrDecodeHelperNoMem 162
- #define kStrDecodeHelperUnexpectedErr 163
- #define kStrDecodePartsMissing 164
- #define kStrGettingAndSavingArtAofBPartNofM 165
- #define kStrArtHasNoAttachedFile 166
- #define kStrAllSelectedArtsHaveMissingParts 167
- #define kStrOneArtSkippedNoAttachedFile 168
- #define kStrNArtsSkippedNoAttachedFile 169
- #define kStrOneArtSkippedMissingParts 170
- #define kStrNArtsSkippedMissingParts 171
- #define kStrExtractBinariesManuallyDlgLabel 172
- #define kStrExtractBinariesManuallyTooMuchCellData 173
- #define kStrTempFileName 174
- #define kStrBadScrapData 175
- #define kStrDuplicateGroups 176
- #define kStrOneDuplicateGroup 177
- #define kStrMoving 178
- #define kStrPasting 179
- #define kStrDragTextTooBigMaxIs32767 180
- #define kStrGroupDragTooBigMaxIs32767 181
- #define kStrDiskWriteProtected 182
- #define kStrArtNotOnServer 183
- #define kStrOneArtSkippedNotOnServer 184
- #define kStrNArtsSkippedNotOnServer 185
- #define kStrUUDecodeHelperName 186
- #define kStrPrinting 187
- #define kStrGettingAndPrinting 188
- #define kStrGettingAndPrintingNofM 189
- #define kStrPrintedFor 190
- #define kStrSaveFileAsPrompt 191
- #define kStrNoNewsgroupsHeader 192
- #define kStrTooManySubjects 193
- #define kStrTooManyPrefsFileGroups 194
- #define kStrTooManyGroupsOnServer 195
- #define kStrBadPrefs 196
- #define kStrDamagedPrefsFileName 197
- #define kStrPrintNoDriver 198
- #define kStrNoPrinterSelected 199
- #define kStrNntpURLSyntaxError 200
- #define kStrAddingInitialSubscribedGroups 201
- #define kStrFloppyLocked 202
- #define kStrFloppyEraseFailed 203
- #define kStrCouldNotOpenOT 204
- #define kStrArticleOrGroupNotFound 205
- #define kStrURLSyntaxError 206
- #define kStrNotAnApplication 207
- #define kStrDesktopDatabaseDamaged 208
- #define kStrMustSupplyBody 209
- #define kStrOnlyQuotedText 210
- #define kStrBadEmailAddress 211
- #define kStrCopyAlsoPostedTo 212
- #define kStrNewsIconLabel 213
- #define kStrMailIconLabel 214
- #define kStrSelfIconLabel 215
- #define kStrCantRedefineBuiltinURLs 216
- #define kStrURLSchemeAlreadyDefined 217
- #define kStrBadURLHelperPrefs 218
- #define kStrBody 219
-
-
-
- /* Types. */
-
- typedef enum TWindowKind {
- kGroup, /* group list window */
- kSubject, /* subject list window */
- kArticle, /* article window */
- kMessage, /* message window */
- kText, /* text window */
- kHelp, /* help window */
- kStatus, /* status window */
- kDialog, /* dialog window */
- kDummy, /* dummy window */
- kNotOurWind /* no window, or DA window */
- } TWindowKind;
-
- #define kNumWindowKind kNotOurWind /* number of window kinds */
-
- typedef enum TGroupWindowKind {
- kFullGroup, /* full group list window */
- kNewGroup, /* new groups list window */
- kUserGroup /* user group list window */
- } TGroupWindowKind;
-
- typedef enum TAttachedFileKind {
- kNoAttachedFile, /* no attached file */
- kArtNotOnServer, /* article or part no longer on server */
- kBinHex, /* BinHex */
- kUUEncode /* uuencode */
- } TAttachedFileKind;
-
- typedef char TURLSchemeName[kMaxSchemeNameLen+1];
-
- typedef struct TOldURLHelperInfo { /* for pre-version 2.0b25 prefs files */
- OSType sig; /* signature of helper program */
- unsigned long versionNumber; /* version number */
- unsigned long lastMod; /* last mod date/time */
- } TOldURLHelperInfo;
-
- typedef struct TURLHelperInfo {
- TURLSchemeName schemeName; /* scheme name */
- OSType sig; /* signature of helper program */
- unsigned long versionNumber; /* version number */
- unsigned long lastMod; /* last mod date/time */
- } TURLHelperInfo;
-
- typedef struct TDispatch {
- void (*activate)(WindowPtr wind, Boolean act);
- void (*update)(WindowPtr wind);
- OSErr (*mouse)(WindowPtr wind, Point where, short modifiers);
- Boolean (*draggable)(WindowPtr wind, Point where, short modifiers);
- OSErr (*key)(WindowPtr wind, unsigned char theChar, unsigned char theKey, short modifiers);
- OSErr (*grow)(WindowPtr wind, Point where);
- OSErr (*zoom)(WindowPtr wind, short zoomDir);
- OSErr (*command)(WindowPtr wind, short menu, short item, short modifiers);
- OSErr (*close)(WindowPtr wind);
- void (*idle)(WindowPtr wind, RgnHandle cursorRgn);
- void (*help)(WindowPtr wind, Point where);
- } TDispatch;
-
- typedef enum TMsgFieldLabelKind {
- kNoMsgFieldLabel, /* no message window label for this field */
- kMsgFieldLabelLeft, /* message window field has label on left */
- kMsgFieldLabelTop /* message window field has label on top in italics */
- } TMsgFieldLabelKind;
-
- typedef struct THeader {
- long number; /* article number */
- long offset; /* offset in strings of header text */
- } THeader;
-
- typedef struct TUnread {
- long firstUnread; /* first unread message */
- long lastUnread; /* last unread message */
- struct TUnread **next; /* handle to next entry in list */
- } TUnread;
-
- typedef struct TGroup {
- long nameOffset; /* offset in gGroupNames of group name string */
- long firstMess; /* # of first msg in group */
- long lastMess; /* # of last msg in group */
- TUnread **unread; /* handle to list of unread messages for group */
- long numUnread; /* number of unread articles in group */
- char status; /* a general purpose status "marker" used in
- several contexts */
- Boolean onlyRedrawCount; /* true to tell LDEF to only redraw the unread
- message count */
- } TGroup;
-
- typedef struct TSubject {
- long subjectOffset; /* offset in strings block of subject string */
- long authorOffset; /* offset in strings block of author string */
- long number; /* article number */
- short threadHeadIndex; /* index of first article in thread in
- subject array. */
- short threadOrdinal; /* article ordinal in thread (1,2,3,...) */
- short threadLength; /* total number of articles in thread */
- short nextInThread; /* index in subject array of next subject
- in this thread, or -1 if none. */
- short partNum; /* part number, or 0x7fff if not a part */
- short numParts; /* number of parts, or 0x7fff if not a part */
- Boolean collapsed; /* true if thread collapsed */
- Boolean read; /* true if article has been read */
- Boolean incomplete; /* true if incomplete part of multiple part article */
- Boolean complete; /* true if part of multiple part article and thread
- is now complete (contains all parts, and at least
- one part from cache) */
- Boolean inList; /* true if part of subject window list */
- Boolean drawTriangleFilled; /* true to tell LDEF to draw triangle filled with
- black. */
- Boolean onlyRedrawTriangle; /* true to tell LDEF to only redraw the
- triangle */
- Boolean onlyRedrawCheck; /* true to tell LDEF to only redraw the √ */
- } TSubject;
-
- typedef struct TChild {
- WindowPtr childWindow; /* pointer to child window */
- struct TChild **next; /* handle to next entry in list */
- } TChild;
-
- typedef struct TMsgFieldInfo {
- TEHandle edit; /* handle to TextEdit record for field */
- short top; /* top coord of field */
- short bottom; /* bottom coord of field */
- short nLines; /* number of TextEdit lines in field */
- Boolean sepLine; /* true if field preceded by gray separator line */
- TMsgFieldLabelKind labelKind; /* kind of label for this field */
- unsigned char label[60]; /* P-format field label, if any */
- } TMsgFieldInfo;
-
- typedef struct TDialogItemInfo {
- Boolean validChars[256]; /* set of valid printable chars in field */
- Boolean numeric; /* true if numeric field */
- Boolean returnIsLegal; /* true if CR is legal in field */
- short popupTypeinItem; /* item number of partner typein field for popup item,
- or 0 if none */
- char keyEquivalent; /* command key equivalent for button, or 0 if none */
- short maxLength; /* max length of field */
- char *password; /* pointer to password if password field, or nil */
- Boolean readOnly; /* true if read only scrolling field */
- TEHandle theTE; /* textedit handle for scrolling field, or nil
- if none */
- ControlHandle vScroll; /* handle to vertical scroll bar control if scrolling
- field, or nil if none */
- } TDialogItemInfo;
-
- #pragma options align=mac68k
- typedef struct TSavedWindPos {
- Boolean valid; /* true if valid, else use default pos */
- Boolean zoomed; /* true if window zoomed */
- Boolean oldFormat; /* true if old format (pre-2.0b4):
- userState.topLeft valid,
- all other fields not used */
- Rect userState; /* saved window user state */
- } TSavedWindPos;
- #pragma options align=reset
-
- typedef struct TWindow {
-
- /* Fields used by all kinds of windows. */
-
- TWindowKind kind; /* kind of window */
- Boolean windPosValid; /* true if window position should be saved
- and restored */
- Boolean movedSinceLastSave; /* true if window has been moved or resized
- or zoomed since the last time its position
- was saved on the document file */
-
- /* Fields used only by group, subject, article, message, and text windows */
-
- short panelHeight; /* height of panel area */
-
- /* Fields used only by group, subject, article, message, help, and text windows */
-
- ControlHandle vScroll; /* handle to vertical scroll bar */
-
- /* Fields used only by group windows. */
-
- TGroupWindowKind groupKind; /* kind of group window */
- TGroup **groupArray; /* handle to group array */
- short numGroups; /* number of groups */
-
- /* Fields used only by article and subject windows. */
-
- WindowPtr parentWindow; /* pointer to parent window */
- Boolean windPosLocked; /* true if window position is locked */
-
- /* Fields used only by group and subject windows. */
-
- ListHandle theList; /* list handle */
- TChild **childList; /* handle to linked list of child windows */
-
- /* Fields used only by user group and message windows */
-
- Boolean changed; /* true if window contents changed */
- AliasHandle alias; /* handle to alias for saved file if saved, else nil */
-
- /* Fields used only by article, message, and text windows. */
-
- TEHandle theTE; /* TextEdit handle */
-
- /* Fields used only by article and message windows. */
-
- Boolean showDetails; /* true if details shown */
-
- /* Fields used only by help windows. */
-
- short pictResID; /* 'PICT' resource id for window */
- ArrowPairRef helpArrowPair; /* arrow pair reference */
-
- /* Fields used only by user group windows. */
-
- Handle unsubscribed; /* handle to list of unsubscribed groups */
- Boolean autoFetched; /* true if autofetched from host */
- short groupNameHCoord; /* h coord of group name */
- short numUnreadHCoord; /* h coord of num unread articles */
- Boolean okToCloseIfChanged; /* true if ok to close window with changes without saving */
-
- /* Fields used only by subject windows. */
-
- TSubject **subjectArray; /* handle to subject array */
- short numSubjects; /* number of subjects in array */
- short numSubjectsInList; /* number of subjects in list */
- Handle strings; /* handle to subject and author strings */
- short maxSubjectWidth; /* width in pixels of longest subject line, or
- 0 if not yet computed */
- long firstFetched; /* article number of first article fetched */
- long groupNameOffset; /* offset in gGroupNames of group name */
- short parentGroup; /* index in groupArray of parent group window */
- Boolean authorsShown; /* true if authors shown */
- short minusSignHCoord; /* h coord of minus sign */
- short threadCountHCoord; /* h coord of thread count */
- short checkHCoord; /* h coord of check mark */
- short authorHCoord; /* h coord of author */
- short authorWidth; /* width of author field */
- short subjectHCoord; /* h coord of subject */
- short autoExpandedThread; /* index in subject array of first article in thread
- which was most recently autoexpanded by a Find or
- Find Next command, or -1 if none */
- PolyHandle expandTriangle; /* handle to expanded triangle polygon */
- PolyHandle collapseTriangle;/* handle to collapsed triangle polygon */
- long **sortByNumber; /* handle to array of offsets to elements of subject
- array sorted by article number */
-
- /* Fields used only by article windows. */
-
- Handle fullText; /* handle to full article text */
- short maxBodyLineWidth; /* width in pixels of longest body line, truncated
- to 80 * max char width, or 0 if not yet computed */
- short numBodyLines; /* number of lines in body, or 0 if maxLineWidth = 0 */
- short numSections; /* number of sections */
- short curSection; /* current section */
- long **sectionBreaks; /* handle to array of section breaks, or nil
- if none */
- Handle msgId; /* handle to msgId if opened by id, or nil */
- short parentSubject; /* index in subjectArray of parent subject window */
- ControlHandle hScroll; /* handle to horizontal scroll bar, or nil if none */
- Boolean attachedFile; /* true if article has an attached file */
- Boolean showFollowupTo; /* true to display Followup-To header in panel area */
- Boolean showReplyTo; /* true to display Reply-To header in panel area */
- ArrowPairRef sectionArrowPair; /* section arrow pair reference */
- ArrowPairRef nextPrevArrowPair; /* next/prev arrow pair reference */
- short threadInfoWidth; /* width of "Article x of y" message in panel area */
- Handle groupName; /* handle to group name, or nil if opened by id */
- long number; /* article number if not opened by id */
- Boolean flagReqd; /* true if when fetched from server BinHex or uuencode
- text was required to have a special "begin" flag line */
-
- /* Fields used only by message windows. */
-
- Boolean newsIcon; /* true if news icon checked */
- Boolean mailIcon; /* true if mail icon checked */
- Boolean selfIcon; /* true if self icon checked */
- ControlHandle sendButton; /* handle to "Send" button control */
- ControlHandle tabCheckbox; /* handle to tab stops checkbox control */
- ControlHandle wrapCheckbox; /* handle to wrap checkbox control */
- TEHandle tabField; /* handle to tab stops field */
- TEHandle quoteStringField; /* handle to quote string field */
- TEHandle newsgroupsField; /* handle to "Newsgroups" field */
- TEHandle toField; /* handle to "To" field */
- TEHandle subjectField; /* handle to "Subject" field */
- TEHandle ccField; /* handle to "Cc" field */
- TEHandle bccField; /* handle to "Bcc" field */
- TEHandle replytoField; /* handle to "Reply-To" field */
- TEHandle followuptoField; /* handle to "Followup-To" field */
- TEHandle keywordsField; /* handle to "Keywords" field */
- TEHandle distributionField; /* handle to "Distribution" field */
- TEHandle extraNewsField; /* handle to extra news header lines field */
- TEHandle extraMailField; /* handle to extra mail header lines field */
- TEHandle signatureField; /* handle to signature field */
- Handle references; /* handle to "References" header contents */
- Handle from; /* handle to "From" header contents for redirected mail msg */
- TMsgFieldInfo **fields; /* handle to array of field info */
- short numFields; /* number of fields */
- short firstScrollingField; /* index if fields array of first scrolling field */
- short curField; /* index in fields array of current field */
- short labelRight; /* right coord of header field labels */
- Boolean tabEnabled; /* true if body tabs currently enabled for this window */
- Boolean wrapOnSend; /* true to wrap message before sending it */
- short tabStops; /* current tab stops for this window */
- Boolean showLabels; /* true to show labels under 3 icons in panel area */
- short iconPanelHeight; /* heigth of icon panel */
- short optionsPanelHeight; /* height of options panel */
- Boolean isFollowup; /* true if message is a followup */
-
- /* Fields used only by dialog windows. */
-
- Boolean movableModal; /* true if dialog is movable modal */
- short defaultItem; /* item number of default button, or 0 if none */
- Boolean defaultOutline; /* true if default button outlined */
- short cancelItem; /* item number of cancel button, or 0 if none */
- short curItem; /* item number of currently active scrolling text field,
- or 0 if none */
- TDialogItemInfo **itemInfo; /* handle to array of item information */
-
- /* Fields used only by text windows. */
-
- void (*drawPanel)(WindowPtr); /* pointer to panel drawing function, or nil if none */
-
- } TWindow;
-
- #pragma options align=mac68k
- typedef struct TPrefRec {
-
- /* Original 1.0.2 prefs. */
-
- Str255 newsServerName; /* name of news server */
- Str255 textFont; /* name of textedit font */
- short textSize; /* size of textedit font */
- Str255 listFont; /* name of list font */
- short listSize; /* size of list font */
- Point fullGroupWindowLocn; /* saved top left full group window position
- (defunct as of 2.0b4) */
- Point unused0; /* unused (used to be bot right saved full group window pos */
- Point unused1; /* unused (used to be stagerring offset) */
- Point statusWindowLocn; /* saved top left status window position */
- short maxFetch; /* max. number of articles to fetch */
- CStr255 ftpNewsrcUsername; /* username for FTP transfers of newsrc files */
- CStr255 ftpNewsrcHost; /* host name for FTP transfers of newsrc files */
- CStr255 fullName; /* user's full name */
- CStr255 organization; /* user's organization */
- char signature[4096]; /* user's signature */
- Boolean fullGroupListVisible; /* true if full group list window is visible */
- Boolean unused2; /* unused (used to be auto zoom windows) */
- Boolean unused3; /* unused (used to be offset winds from parent) */
- Boolean unused4; /* unused (used to be most recent first) */
- Str255 mailServerName; /* mail server name */
- CStr255 emailAddress; /* user's e-mail address */
-
- /* Added in 1.2(NU) */
-
- char magicCookie[12]; /* magic cookie */
- char versionString[12]; /* version string - used from version 1.2(NU) through
- version 2.0d17. Empty string in version 2.0d18
- and later versions. */
- Boolean areYouSureAlert; /* true to present are you sure alert on postings */
-
- /* Added in 1.3d1 */
-
- Boolean autoFetchNewsrc; /* auto get/put .newsrc file */
- Boolean unused5; /* unused (used to be CC self on email replies) */
-
- /* Added in 1.3d4 */
-
- Boolean showArtHeaders; /* true to show article headers by default */
- Boolean showAuthors; /* true to show authors in subject windows */
- Boolean showThreadsCollapsed; /* true to show threads collapsed by default */
-
- /* Added in 2.0d9 */
-
- Boolean checkForNewGroups; /* Check for new newsgroups at startup */
- Boolean unused6; /* unused (used to be killed articles are shown
- but marked as read) */
- unsigned long groupCheckTime; /* The last time we checked for new groups */
- char ftpNewsrcPassword[32]; /* Password for FTP transfers of newsrc files */
- Boolean saveFtpNewsrcPassword; /* True to save newsrc FTP password */
- Boolean unused7; /* unused (used to be xpand threads with highlighted articles) */
- OSType savedArtCreator; /* Creator code for owning app of saved articles */
- Str31 savedArtAppName; /* Name of the app which owns saved articles */
- Str31 DefunctSavedArtDefaultVolName; /* Default volume to store saved articles (not used in
- 2.0d41 and later) */
- long DefunctSavedArtDefaultDirID; /* Default dir id to store saved articles (not used in
- 2.0d41 and later) */
- short maxGroupNameWidth; /* max group name width in current list font
- and size, or 0 if needs to be recomputed */
- Boolean useXPAT; /* use XPAT for searching if available */
-
- /* Added in 2.0d10 */
-
- Boolean savedArtDefaultFolder; /* true if using default folder for saved articles */
- char ftpNewsrcPath[32]; /* Path for FTP transfers of newsrc files */
-
- /* Added in 2.0d11 */
-
- Boolean addSigSeparatorLine; /* true to add "-- " separator line before sig */
-
- /* Added in 2.0d12 */
-
- Boolean keypadShortcuts; /* true if keypad shortcuts enabled */
- Boolean logActionsToFile; /* true if logging enabled */
-
- /* Added in 2.0d14 */
-
- Boolean batchedGroupCmds; /* use batched GROUP commands */
- Boolean noNewConnection; /* don't establish new connection when checking for new articles */
- Boolean noModeReader; /* don't send MODE READER command */
-
- /* Added in 2.0d16 */
-
- Boolean reZoomWindows; /* rezoom windows */
- Boolean autoSaveOnQuit; /* auto save on quit */
-
- /* Added in 2.0d18 */
-
- Boolean replyPost; /* reply via posting */
- Boolean replyEmail; /* reply via email */
- Boolean copySelf; /* send copies to self */
- Boolean showMsgDetails; /* show message window details */
- Boolean tabEnabled; /* tabs enabled in message bodys */
- short tabStops; /* tab stops */
- char quoteString[11]; /* quote string */
- CStr255 extraNewsHdrLines; /* extra news header lines */
- CStr255 extraMailHdrLines; /* extra mail header lines */
-
- /* Added in 2.0d19 */
-
- unsigned long version; /* version number of NewsWatcher which created this
- prefs file, in 'vers' resource format */
- Boolean addSigBlankLine; /* add blank line before signature */
-
- /* Added in 2.0d21 */
-
- Point prefsLoc; /* location of preferences dialog */
- Point unused8; /* unused (used to be location of about box dialog) */
- Point hostLoc; /* location of remote host dialog */
- Point servErrLoc; /* location of news server error dialog */
- Point searchLoc; /* location of search dialog */
- Point unused9; /* unused (used to be location of server info dialog) */
- Point delGroupsLoc; /* location of deleted groups dialog */
-
- /* Added in 2.0d24 */
-
- Boolean unused10; /* unused (used to be fetch oldest/newest option */
- Boolean wrapOnSend; /* true to wrap messages before sending them */
-
- /* Added in 2.0d25. These prefs fields are defunct as of 2.0b17. They are
- replaced by the new ftpHelperInfo field. */
-
- OSType ftpHelper; /* Creator code for FTP helper program */
- Str31 ftpHelperName; /* Name of FTP helper program */
-
- /* Added in 2.0d26 */
-
- char authUsername[32]; /* authorization username */
- char authPassword[32]; /* authorization password */
- Boolean authSavePassword; /* true to save authorization password */
- Boolean authAtStartup; /* true to authorize at startup, false to
- authorize only when requested */
- Point authLoc; /* location of authorization dialog */
-
- /* Added in 2.0d27 */
-
- Boolean authPrivateGroups; /* true if private groups */
-
- /* Added in 2.0d39 */
-
- Boolean unused11; /* unused (used to be saved article auto save option) */
-
- /* Added in 2.0d41 */
-
- Boolean savedMsgDefaultFolder; /* true if using default folder for
- saved messages */
- AliasHandle savedMsgDefaultFolderAlias; /* reserved for handle to default
- saved message folder alias */
- Boolean unused12; /* unused (used to be saved msg auto save option */
- Boolean savedMsgDelAfterSend; /* true to delete saved messages after sending them */
- AliasHandle savedArtDefaultFolderAlias; /* reserved for handle to default saved article
- folder alias */
- Boolean savedBinDefaultFolder; /* true if using default folder for saved
- binaries */
- AliasHandle savedBinDefaultFolderAlias; /* reserved for handle to default saved binaries
- folder alias */
- OSType hqxHelper; /* creator code for BinHex helper program */
- Str31 hqxHelperName; /* name of BinHex helper program */
-
- /* Added in 2.0d44 */
-
- OSType uuHelper; /* creator code for uudecode helper program */
- Str31 uuHelperName; /* name of uudecode helper program */
- Boolean keyboardShortcuts; /* main keyboard shortcuts */
-
- /* Added in 2.0d48 */
-
- Boolean reuseArticleWinds; /* reuse article windows */
- Point autoFetchNewsrcLocn; /* saved top left auto-fetched newsrc
- window position (defunct as of 2.0b4) */
-
- /* Added in 2.0b4 */
-
- Boolean dontCoverFinderIcons; /* don't cover Finder icons */
- Boolean saveThreadsToSeparateFiles; /* save threads to separate files */
- Boolean appendIfFileAlreadyExists; /* append if file already exists */
- Boolean saveEncodedText; /* save encoded text */
- Boolean subjectWindPosLocked; /* true if subject window pos locked */
- Rect subjectWindLocn; /* saved locked subject window pos */
- Boolean articleWindPosLocked; /* true if article window pos locked */
- Rect articleWindLocn; /* saved locked article window pos */
- TSavedWindPos fullGroupWindPos; /* saved full group window position */
- TSavedWindPos autoFetchWindPos; /* saved autofetch window position */
-
- /* Added in 2.0b12 */
-
- Boolean returnToSubjectWindow; /* return to subject window at end of thread */
-
- /* Added in 2.0b14 */
-
- Boolean beepAtEndOfGroup; /* beep at end of group
- (defunct as of 2.0b27) */
- Point findLoc; /* location of find dialog */
-
- /* Added in 2.0b15 */
-
- Boolean startFindAtBeginning; /* true to start Find commmands at
- beginning of window */
- Boolean savedUGLDefaultFolder; /* true if useing default folder for
- saved user group lists */
- AliasHandle savedUGLDefaultFolderAlias; /* reserved for handle to default
- saved user group list folder alias */
- Point waitForDNRLoc; /* location of wait for DNR dialog */
-
- /* Added in 2.0b17 - defunct as of 2.0b25 */
-
- TOldURLHelperInfo ftpHelperInfo; /* pre-2.0b25 ftp helper program info */
- TOldURLHelperInfo httpHelperInfo; /* pre-2.0b25 http helper program info */
- TOldURLHelperInfo gopherHelperInfo; /* pre-2.0b25 gopher helper program info */
- TOldURLHelperInfo waisHelperInfo; /* pre-2.0b25 wais helper program info */
- TOldURLHelperInfo telnetHelperInfo; /* pre-2.0b25 telnet helper program info */
- TOldURLHelperInfo tn3270HelperInfo; /* pre-2.0b25 tn3270 helper program info */
- TOldURLHelperInfo fingerHelperInfo; /* pre-2.0b25 finger helper program info */
- TOldURLHelperInfo whoisHelperInfo; /* pre-2.0b25 whois helper program info */
-
- /* Added in 2.0b21 */
-
- Str255 printingFont; /* name of printing font */
- short printingSize; /* size of printing font */
-
- /* Added in 2.0b22 */
-
- Boolean useInternetConfig; /* true to use Internet Config */
-
- /* Added in 2.0b23 */
-
- Boolean useWebHelperForHtmlFiles; /* true to use web (http) helper for .html ftp URLs */
- TOldURLHelperInfo phHelperInfo; /* pre-2.0b25 ph helper program info */
-
- /* Added in 2.0b25 */
-
- Point retryConnectLoc; /* location of retry news server connect dialog */
- Boolean showLabelsUnderIcons; /* true to show labels under 3 msg window icons */
- TURLHelperInfo **urlHelpers; /* reserved for handle to array of URL helper info,
- terminated by an entry with schemeName = empty
- string. */
-
- /* Added in 2.0b27 */
-
- Boolean stopAtEndOfSubjectList; /* true to stop at end of subject list */
- Boolean beepAtEndOfLists; /* true to beep at end of subject and group lists */
-
- char fill[132]; /* for future expansion */
-
- } TPrefRec, *TPrefPtr;
- #pragma options align=reset
-
-
-
- /* Global variables. */
-
- extern TDispatch gDispatch[kNumWindowKind]; /* dispatch table */
-
- extern short gNumGroups; /* number of newsgroups */
- extern TGroup **gFullGroupArray; /* handle to full group array */
- extern Handle gGroupNames; /* handle to group name strings */
- extern WindowPtr gFullGroupWindow; /* pointer to full group list window */
- extern Boolean gFullGroupListDirty; /* true if full group list dirty */
- extern Boolean gMustDoZoomOnShowFullGroupList; /* true if full group list needs zooming */
-
- extern TPrefRec gPrefs; /* preferences */
-
- extern CStr255 gAutoFetchHost; /* autofetch host */
- extern CStr255 gAutoFetchUsername; /* autofetch username */
- extern char gAutoFetchPassword[32]; /* autofetch password */
- extern char gAutoFetchPath[32]; /* autofetch path */
-
- extern Boolean gDone; /* flag set true upon program termination */
- extern Boolean gCancel; /* flag set when user cancels an action */
- extern Boolean gStartupOK; /* true if no errors during startup */
- extern Boolean gStartingUp; /* true during startup */
- extern Boolean gPrefsFileFoundAtStartup; /* true if prefs file found during startup */
- extern Boolean gLongOperation; /* true during long operations */
- extern Boolean gInDialog; /* true while in dialog */
- extern Boolean gInBackground; /* background/foreground flag */
- extern Boolean gAEServer; /* true while responding to Apple event */
- extern DialogPtr gMyCurDialog; /* pointer to NewsWatcher's current dialog
- window, or nil if none */
- extern Rect gDesktopExtent; /* desktop extent */
- extern Cursor gIBeamCurs; /* ibeam cursor */
- extern Cursor gWatchCurs; /* watch cursor */
-
- extern Boolean gHaveDragMgr; /* true if Drag Manager is available */
- extern OSErr (*gDragPostProcessor)(void); /* pointer to drag and drop post-processing
- function, or nil if none */
- extern OSErr gDragErr; /* Drag Manager handler error code. */
- extern Boolean gDidDrag; /* true if did a drag and drop */
-
- extern EventRecord gCurEvent; /* current event being handled */
- extern EventRecord gPrevEvent; /* previous event */
-
- extern Boolean gHaveTEOutlineHilite; /* true if TE outline hilight feature
- is available */
-
- extern CStr255 gFindPattern; /* pattern for Find and Find Again commands */